module.exports = app => {
  const jwt = require('jsonwebtoken')
  const express = require('express')
  const User = require('../../models/User');
  const AdminUser = require('../../models/AdminUser')
  //在登录的时候，req.body里面会有一个status，0表示普通用户,1表示管理员用户
  app.post('/admin/api/loginAPI', async (req, res) => {
    const {
      username,
      password,
      status
    } = req.body
    //1根据用户名找用户
    let userInfo = ''
    if (status == 0) {
      userInfo = await User.findOne({
        username: username,
        password: password
      })
    } else if (status == 1) {
      userInfo = await AdminUser.findOne({
        password: password,
        username: username
      })
    } else {
      return res.status(422).send({
        message: '用户名或密码错误！'
      })
    }
    if (!userInfo) {
      return res.status(422).send({
        message: '用户名或密码错误！'
      })
    }
    //3返回token

    //第一个参数是要转换的内容，第二个参数是secret，表示秘钥，如果给了，就会根据算法生成token，客户端可以直接解出来数据
    //客户端是否串改过token，可以校验
    const token = jwt.sign({
      _id: userInfo._id,
      bindId: userInfo.bindId,
      identity:userInfo.identity
    }, app.get('secret'))
    res.send({
      token,
      identity: userInfo.identity
    })
    //这里的app。get和路由的app.get是冲突的，所以它在获取的时候会看你传的参数是什么，若果是一个的话，则是取set的值。
  })
}